package com.bkgy.controller.optimize.service;

import com.bkgy.controller.optimize.dto.OptimizeDistributeRes;
import com.bkgy.controller.optimize.entity.*;
import com.bkgy.sys.common.entity.ResultData;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * Author:Lipeng Zhao
 * Description:
 *
 * @Date:Created In 10:59 2025/5/6
 */

public interface OptimizeService {

    public ResultData findMapByCondition(AcidRollingProductRequest request);

    public ResultData findAcidRollingProduct(AcidRollingProductRequest request);

    public ResultData findCaseMapByCondition(AcidRollingProductRequest request);

    public ResultData findLoadDistributionMapByCondition(LoadDistributionRequest request);

    public ResultData findLoadDistributionCurveData(LoadDistributionRequest request);

    public ResultData findCaseByCoilNo(AcidRollingProductRequest request);

    public ResultData deleteCaseByCoilNo(AcidRollingProductRequest request);

    public ResultData updateCase(CaseManageEntity request);


    public ResultData importData(Map<String, Object> map);

    /**
     * @Description: 导出模板
     *
     * @param map
     * @return: org.springframework.web.servlet.ModelAndView
     * @Author: 赵立朋
     */
    ModelAndView exportTemplate(Map<String, Object> map);

    public ResultData simulationReport(SimulationReportRequest request);

    public ResultData classStatistics(ClassStatisticsReq request);

    public ResultData findByYpClass(ClassStatisticsReq request);


    ModelAndView classStatisticsExport(Map<String, Object> map);

    ModelAndView acidRollingProductExport(Map<String, Object> map);

    void loadDistributionExport(LoadDistributionRequest loadDistributionRequest,HttpServletResponse response);

    ResultData<OptimizeDistributeRes> distributionData();
}
